home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / airplane / code.lua next >
Encoding:
Text File  |  2005-07-16  |  8.7 KB  |  230 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky14.ogg")
  8.     local pokus = getRestartCount()
  9.     local roompole = createArray(1)
  10.  
  11.  
  12.     -- -------------------------------------------------------------
  13.     local function prog_init_room()
  14.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  15.  
  16.         room.uvod = 0
  17.         room.ooku = 0
  18.         room.osedadle = 0
  19.  
  20.         return function()
  21.             if isReady(small) and isReady(big) and no_dialog() then
  22.                 if room.uvod == 0 then
  23.                     room.uvod = 1
  24.                     if pokus > 1 then
  25.                         adddel(10 * pokus)
  26.                     end
  27.                     if random(100) < 110 - 10 * pokus then
  28.                         addm(20 + random(30), "let-m-divna")
  29.                     end
  30.                     if roompole[0] == 0 then
  31.                         pom1 = random(3)
  32.                     else
  33.                         pom1 = random(2)
  34.                         if roompole[0] == pom1 + 10 then
  35.                             pom1 = 2
  36.                         end
  37.                     end
  38.                     roompole[0] = pom1 + 10
  39.                     addv(random(10) + 5, "let-v-vrak"..pom1)
  40.                 elseif room.ooku == 0 and ocicko.X >= 23 and random(100) < 1 then
  41.                     addv(random(30), "let-v-oko")
  42.                     addm(5, "let-m-oko")
  43.                     room.ooku = 1
  44.                 elseif (sed1.dir ~= dir_no or sed2.dir ~= dir_no or sed3.dir ~= dir_no) and small.dir ~= dir_no and random(100) < 1 then
  45.                     addm(0, "let-m-sedadlo")
  46.                     if room.osedadle == 0 or random(100) < 30 then
  47.                         addv(5 + random(15), "let-v-budrada")
  48.                     end
  49.                     room.osedadle = room.osedadle + 1
  50.                 end
  51.             end
  52.         end
  53.     end
  54.  
  55.     -- -------------------------------------------------------------
  56.     local function prog_init_ocicko()
  57.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  58.  
  59.         ocicko.cinnost = 0
  60.  
  61.         return function()
  62.             local cinnost_table = {
  63.                 [0] = function()
  64.                     if random(100) < 10 then
  65.                         switch(random(8)){
  66.                             [0] = function()
  67.                                 ocicko.citac = random(5) + 5
  68.                                 ocicko.cinnost = 1
  69.                                 ocicko.faze = random(2) * 2
  70.                             end,
  71.                             [1] = function()
  72.                                 ocicko.citac = random(5) + 5
  73.                                 ocicko.cinnost = 1
  74.                                 ocicko.faze = random(2) * 2
  75.                             end,
  76.                             [2] = function()
  77.                                 ocicko.citac = random(5) + 5
  78.                                 ocicko.cinnost = 1
  79.                                 ocicko.faze = random(2) * 2
  80.                             end,
  81.                             [3] = function()
  82.                                 ocicko.citac = random(3) + 2
  83.                                 ocicko.cinnost = 2
  84.                                 ocicko.faze = random(2) * 2
  85.                             end,
  86.                             [4] = function()
  87.                                 ocicko.citac = random(12) + 12
  88.                                 ocicko.cinnost = 3 + random(2)
  89.                             end,
  90.                             [5] = function()
  91.                                 ocicko.citac = random(12) + 12
  92.                                 ocicko.cinnost = 3 + random(2)
  93.                             end,
  94.                             [6] = function()
  95.                                 ocicko.citac = random(12) + 12
  96.                                 ocicko.cinnost = 3 + random(2)
  97.                             end,
  98.                             [7] = function()
  99.                                 ocicko.citac = random(10) + 2
  100.                                 ocicko.cinnost = 5
  101.                             end,
  102.                         }
  103.                     end
  104.                 end,
  105.                 [1] = function()
  106.                     switch(ocicko.faze){
  107.                         [0] = function()
  108.                             if ocicko.cinnost == 1 then
  109.                                 ocicko.afaze = 1
  110.                             else
  111.                                 ocicko.afaze = 3
  112.                             end
  113.                             if random(100) < 20 then
  114.                                 ocicko.faze = ocicko.faze + 1
  115.                             end
  116.                         end,
  117.                         [1] = function()
  118.                             ocicko.afaze = 0
  119.                             ocicko.faze = ocicko.faze + 1
  120.                         end,
  121.                         [2] = function()
  122.                             if ocicko.cinnost == 1 then
  123.                                 ocicko.afaze = 2
  124.                             else
  125.                                 ocicko.afaze = 4
  126.                             end
  127.                             if random(100) < 20 then
  128.                                 ocicko.faze = ocicko.faze + 1
  129.                             end
  130.                         end,
  131.                         [3] = function()
  132.                             ocicko.afaze = 0
  133.                             ocicko.citac = ocicko.citac - 1
  134.                             if ocicko.citac == 0 then
  135.                                 ocicko.cinnost = 0
  136.                             else
  137.                                 ocicko.faze = 0
  138.                             end
  139.                         end,
  140.                     }
  141.                 end,
  142.                 [3] = function()
  143.                     switch(ocicko.cinnost){
  144.                         [3] = function()
  145.                             switch(ocicko.afaze){
  146.                                 [0] = function()
  147.                                     ocicko.afaze = random(4) + 1
  148.                                 end,
  149.                                 [1] = function()
  150.                                     ocicko.afaze = 3
  151.                                 end,
  152.                                 [2] = function()
  153.                                     ocicko.afaze = 4
  154.                                 end,
  155.                                 [3] = function()
  156.                                     ocicko.afaze = 2
  157.                                 end,
  158.                                 [4] = function()
  159.                                     ocicko.afaze = 1
  160.                                 end,
  161.                             }
  162.                         end,
  163.                         [4] = function()
  164.                             switch(ocicko.afaze){
  165.                                 [0] = function()
  166.                                     ocicko.afaze = random(4) + 1
  167.                                 end,
  168.                                 [1] = function()
  169.                                     ocicko.afaze = 4
  170.                                 end,
  171.                                 [2] = function()
  172.                                     ocicko.afaze = 3
  173.                                 end,
  174.                                 [3] = function()
  175.                                     ocicko.afaze = 1
  176.                                 end,
  177.                                 [4] = function()
  178.                                     ocicko.afaze = 2
  179.                                 end,
  180.                             }
  181.                         end,
  182.                         [5] = function()
  183.                             if random(100) < 40 then
  184.                                 ocicko.afaze = random(5)
  185.                             end
  186.                         end,
  187.                     }
  188.                     ocicko.citac = ocicko.citac - 1
  189.                     if ocicko.citac == 0 then
  190.                         ocicko.cinnost = 0
  191.                         ocicko.afaze = 0
  192.                     end
  193.                 end,
  194.             }
  195.  
  196.             cinnost_table[2] = cinnost_table[1]
  197.             cinnost_table[4] = cinnost_table[3]
  198.             cinnost_table[5] = cinnost_table[3]
  199.  
  200.             switch(ocicko.cinnost)(cinnost_table)
  201.             ocicko:updateAnim()
  202.         end
  203.     end
  204.  
  205.     -- --------------------
  206.     local update_table = {}
  207.     local subinit
  208.     subinit = prog_init_room()
  209.     if subinit then
  210.         table.insert(update_table, subinit)
  211.     end
  212.     subinit = prog_init_ocicko()
  213.     if subinit then
  214.         table.insert(update_table, subinit)
  215.     end
  216.     return update_table
  217. end
  218. local update_table = prog_init()
  219.  
  220.  
  221. -- -----------------------------------------------------------------
  222. -- Update
  223. -- -----------------------------------------------------------------
  224. function prog_update()
  225.     for key, subupdate in pairs(update_table) do
  226.         subupdate()
  227.     end
  228. end
  229.  
  230.